"""
二进制回文数

  十进制数585 的二进制表示为1001001001，可以看出它在这两种进制下都是回文数。
  找出所有小于一百万，且在十进制和二进制下均是回文数的数，并求它们的和[注意： 无论在哪种进制下，第一位数均不为0]。

"""

def palindrome(n):
    if n==n[::-1]:
        return True
    else:
        return False

result=0
for i in range(1,1000000):
    j=bin(i)[2:]
    if palindrome(str(i)) and palindrome(j):
        result+=i
print(result)




# def an_fan(strr):#判断回文数
#     if str(strr) == str(strr)[::-1]:
#         return True
#     else:
#         return 0
# def an_bin(n):#转为二进制
#     if n==0:
#         return '0'
#     list_bian=''
#     while n>=1:
#         if n%2==0:
#             list_bian+='0'
#         else:
#             list_bian+='1'
#         n=int(n/2)
#     return list_bian[::-1]
# anfan=0
# for i in range(1,1000000):
#     if an_fan(str(i)) and an_fan(an_bin(i)):
#         anfan+=i
# print(anfan)
# 答案：872187